package com.qxbb.report.controller;

import com.qxbb.report.bo.BrandBO;
import com.qxbb.report.bo.CommodityBO;
import com.qxbb.report.bo.CommodityInventoryBO;
import com.qxbb.report.bo.InventoryBo;
import com.qxbb.report.service.ChainStoreService;
import com.qxbb.report.utils.http.HttpResult;
import com.qxbb.report.vo.InventoryBrandVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;
import java.util.List;

/**
 * @Author: pebble
 * @CreateTime: 2023-11-15  10:42
 * @Description: 库存统计
 * @Version: 1.0
 */

@RestController
@RequestMapping("chain")
@CrossOrigin
public class inventoryController {

    Logger logger = LoggerFactory.getLogger(LoginController.class);

    @Autowired
    private ChainStoreService chainStoreService;

    /**
     * 库存统计 --》 连锁店信息
     * @return
     */
    @PostMapping("/inventory/{userType}/{userId}")
    public HttpResult selectInventory(@PathVariable("userType")Integer userType, @PathVariable("userId")Integer userId){
        logger.info(this.getClass() + ".selectInventory 库存统计 --》 连锁店信息,用户id:{},用户类别:{}",userType,userId);
        return HttpResult.ok(chainStoreService.selectInventory(userType,userId));
    }

    /**
     * 库存统计 --》--》 模糊查询连锁店信息
     * @return
     */
    @PostMapping("/likeInventory")
    public HttpResult selectLikeInventory(@RequestBody InventoryBo inventoryBo){
        logger.info(this.getClass() + ".selectLikeInventory 库存统计 --》--》 模糊查询连锁店信息:{}", inventoryBo);
        return HttpResult.ok(chainStoreService.selectLikeInventory(inventoryBo));
    }

    /**
     * 库存统计 --》 连锁店信息 -->年份
     * @return
     */
    @GetMapping("/inventory/year/{storeId}")
    public HttpResult selectInventoryYear(@PathVariable("storeId")Integer storeId){
        logger.info(this.getClass() + ".selectInventoryYear 库存统计 --》 连锁店信息 -->年份:{}", storeId);
        return HttpResult.ok(chainStoreService.selectInventoryYear(storeId));
    }

    /**
     * 库存统计 --》 连锁店信息 -->季度
     * @return
     */
    @GetMapping("/inventory/quanter")
    public HttpResult selectInventoryYear(@RequestParam("storeId")Integer storeId, @RequestParam("year")String year){
        logger.info(this.getClass() + ".selectInventoryYear 库存统计 --》 连锁店信息 -->季度,店铺id:{},年份：{}", storeId,year);
        return HttpResult.ok(chainStoreService.selectInventoryQuanter(storeId,year));
    }

    /**
     * 库存统计 --》 年份 --》 品牌
     * @return
     */
    @PostMapping("/inventory/brand")
    public HttpResult selectInventoryBrand(@RequestBody BrandBO brandBO){
        logger.info(this.getClass() + ".selectInventoryBrand 库存统计 --》 年份 --》 品牌:{}", brandBO);
        return HttpResult.ok(chainStoreService.selectInventoryBrand(brandBO));
    }

    /**
     * 库存统计 --》 年份 --》 类别
     * @return
     */
    @PostMapping("/inventory/category")
    public HttpResult selectInventoryCategory(@RequestBody BrandBO brandBO){
        logger.info(this.getClass() + ".selectInventoryCategory 库存统计 --》 年份 --》 类别:{}", brandBO);
        return HttpResult.ok(chainStoreService.selectInventoryCategory(brandBO));
    }

    /**
     * 库存统计 --》 品牌 --》 商品
     * @return
     */
    @PostMapping("/inventory/commodity")
    public HttpResult selectInventoryCommodity(@RequestBody CommodityBO commodityBO) throws IOException {
        logger.info(this.getClass() + ".selectInventoryCommodity 库存统计 --》 品牌 --》 商品:{}", commodityBO);
        return HttpResult.ok(chainStoreService.selectInventoryCommodity(commodityBO));
    }


    /**
     * 库存统计 --》 类别 --》 商品
     * @return
     */
    @PostMapping("/category/commodity")
    public HttpResult selectCommodity(@RequestBody CommodityInventoryBO commodityInventoryBO) throws IOException {
        logger.info(this.getClass() + ".selectCommodity 库存统计 --》 类别 --》 商品:{}", commodityInventoryBO);
        return HttpResult.ok(chainStoreService.selectCommodity(commodityInventoryBO));
    }


}
